home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / mmatch / mainmem3.frm (.txt) < prev    next >
Encoding:
Visual Basic Form  |  1995-09-06  |  12.6 KB  |  417 lines

  1. VERSION 2.00
  2. Begin Form BOARD 
  3.    BackColor       =   &H00808080&
  4.    Caption         =   "Memory Match"
  5.    ClientHeight    =   5835
  6.    ClientLeft      =   1245
  7.    ClientTop       =   2145
  8.    ClientWidth     =   9855
  9.    Height          =   6525
  10.    Icon            =   MAINMEM3.FRX:0000
  11.    Left            =   1185
  12.    LinkMode        =   1  'Source
  13.    LinkTopic       =   "Form1"
  14.    ScaleHeight     =   5835
  15.    ScaleWidth      =   9855
  16.    Top             =   1515
  17.    Width           =   9975
  18.    Begin PictureBox MhButton2 
  19.       BackColor       =   &H000000FF&
  20.       Height          =   1000
  21.       Left            =   0
  22.       ScaleHeight     =   975
  23.       ScaleWidth      =   975
  24.       TabIndex        =   8
  25.       Top             =   0
  26.       Width           =   1000
  27.    End
  28.    Begin PictureBox Mh3d1 
  29.       BackColor       =   &H000000FF&
  30.       Height          =   1000
  31.       Left            =   0
  32.       ScaleHeight     =   975
  33.       ScaleWidth      =   975
  34.       TabIndex        =   5
  35.       Top             =   0
  36.       Width           =   1000
  37.       Begin PictureBox NUMMATCH 
  38.          BackColor       =   &H000000FF&
  39.          Height          =   1000
  40.          Left            =   0
  41.          ScaleHeight     =   975
  42.          ScaleWidth      =   975
  43.          TabIndex        =   7
  44.          Top             =   0
  45.          Width           =   1000
  46.       End
  47.       Begin PictureBox Mh3d4 
  48.          BackColor       =   &H000000FF&
  49.          Height          =   1000
  50.          Left            =   0
  51.          ScaleHeight     =   975
  52.          ScaleWidth      =   975
  53.          TabIndex        =   6
  54.          Top             =   0
  55.          Width           =   1000
  56.       End
  57.    End
  58.    Begin PictureBox Mh3d2 
  59.       BackColor       =   &H000000FF&
  60.       Height          =   1000
  61.       Left            =   0
  62.       ScaleHeight     =   975
  63.       ScaleWidth      =   975
  64.       TabIndex        =   1
  65.       Top             =   0
  66.       Width           =   1000
  67.       Begin PictureBox NUMTRIES 
  68.          BackColor       =   &H000000FF&
  69.          Height          =   1000
  70.          Left            =   0
  71.          ScaleHeight     =   975
  72.          ScaleWidth      =   975
  73.          TabIndex        =   4
  74.          Top             =   0
  75.          Width           =   1000
  76.       End
  77.       Begin PictureBox Mh3d3 
  78.          BackColor       =   &H000000FF&
  79.          Height          =   1000
  80.          Left            =   0
  81.          ScaleHeight     =   975
  82.          ScaleWidth      =   975
  83.          TabIndex        =   3
  84.          Top             =   0
  85.          Width           =   1000
  86.       End
  87.    End
  88.    Begin PictureBox PLAYFIELD 
  89.       BackColor       =   &H000000FF&
  90.       Height          =   1000
  91.       Left            =   0
  92.       ScaleHeight     =   975
  93.       ScaleWidth      =   975
  94.       TabIndex        =   0
  95.       Top             =   0
  96.       Width           =   1000
  97.       Begin PictureBox MEMORY 
  98.          AutoSize        =   -1  'True
  99.          BorderStyle     =   0  'None
  100.          Height          =   480
  101.          Index           =   1
  102.          Left            =   600
  103.          Picture         =   MAINMEM3.FRX:0302
  104.          ScaleHeight     =   480
  105.          ScaleWidth      =   480
  106.          TabIndex        =   2
  107.          Top             =   720
  108.          Visible         =   0   'False
  109.          Width           =   480
  110.       End
  111.    End
  112.    Begin Menu GAMES 
  113.       Caption         =   "&Games"
  114.       Begin Menu JOKE 
  115.          Caption         =   "2 X 2  (2 matches)"
  116.       End
  117.       Begin Menu GAME 
  118.          Caption         =   "3 X 4  (6 matches)"
  119.          Index           =   1
  120.       End
  121.       Begin Menu GAME 
  122.          Caption         =   "4 X 4  (8 matches)"
  123.          Index           =   2
  124.       End
  125.       Begin Menu GAME 
  126.          Caption         =   "4 X 5  (10 matches)"
  127.          Index           =   3
  128.       End
  129.       Begin Menu GAME 
  130.          Caption         =   "4 X 6  (12 matches)"
  131.          Index           =   4
  132.       End
  133.       Begin Menu GAME 
  134.          Caption         =   "5 X 6  (15 matches)"
  135.          Index           =   5
  136.       End
  137.       Begin Menu GAME 
  138.          Caption         =   "6 X 6  (18 matches)"
  139.          Index           =   6
  140.       End
  141.       Begin Menu GAME 
  142.          Caption         =   "6 X 7  (21 matches)"
  143.          Index           =   7
  144.       End
  145.       Begin Menu GAME 
  146.          Caption         =   "6 X 8  (24 matches)"
  147.          Index           =   8
  148.       End
  149.       Begin Menu Z 
  150.          Caption         =   "-"
  151.       End
  152.       Begin Menu QUIT 
  153.          Caption         =   "E&xit"
  154.       End
  155.    End
  156.    Begin Menu OPTIONS 
  157.       Caption         =   "&Options"
  158.       Begin Menu ICONS 
  159.          Caption         =   "&Flags of the World"
  160.          Checked         =   -1  'True
  161.          Index           =   1
  162.       End
  163.       Begin Menu ICONS 
  164.          Caption         =   "&Numbers"
  165.          Index           =   2
  166.       End
  167.    End
  168.    Begin Menu Information 
  169.       Caption         =   "&Information"
  170.       Begin Menu HISCORE 
  171.          Caption         =   "&High scores"
  172.       End
  173.       Begin Menu ZZ 
  174.          Caption         =   "-"
  175.       End
  176.       Begin Menu Info 
  177.          Caption         =   "&About"
  178.       End
  179.    End
  180. Sub ABOUT_Click ()
  181. End Sub
  182. Sub Form_Load ()
  183.     Call SETUP
  184. End Sub
  185. Sub GAME_Click (INDEX As Integer)
  186.     CR$ = Chr$(13) + Chr$(10)
  187.     If TRIES > 0 And NUMFLAGS / 2 <> MATCHES Then
  188.         EVAL = MsgBox("Do you want to abandon" + CR$ + "the current game?", 32 + 4, "New game?")
  189.     End If
  190.     If EVAL = 7 Then Exit Sub
  191.     PLAYFIELD.VISIBLE = 0
  192.     Call ICONRESET
  193.     TOPREF = MEMORY(1).TOP
  194.     LEFTREF = MEMORY(1).LEFT
  195.     GAMEBOARD = INDEX
  196.     Select Case INDEX
  197.         Case 1
  198.             NUMFLAGS = 12       '3 X 4
  199.             ROWS = 3
  200.         Case 2
  201.             NUMFLAGS = 16       '4 X 4
  202.             ROWS = 4
  203.         Case 3
  204.             NUMFLAGS = 20       '4 X 5
  205.             ROWS = 4
  206.         Case 4
  207.             NUMFLAGS = 24       '4 X 6
  208.             ROWS = 4
  209.         Case 5
  210.             NUMFLAGS = 30       '5 x 6
  211.             ROWS = 5
  212.         Case 6
  213.             NUMFLAGS = 36       '6 X 6
  214.             ROWS = 6
  215.         Case 7
  216.             NUMFLAGS = 42       '6 X 7
  217.             ROWS = 6
  218.         Case 8
  219.             NUMFLAGS = 48       '6 X 8
  220.             ROWS = 6
  221.     End Select
  222.     For I = 1 To NUMFLAGS
  223.             
  224.         If I > ROWS And I Mod ROWS = 1 Then
  225.             LEFTREF = LEFTREF + 700
  226.             TOPREF = MEMORY(1).TOP
  227.         End If
  228.        
  229.         If I <> 1 Then
  230.             If I Mod ROWS <> 1 Then
  231.                 TOPREF = TOPREF + 700
  232.             End If
  233.             Load MEMORY(I)
  234.             MEMORY(I).TOP = TOPREF
  235.             MEMORY(I).LEFT = LEFTREF
  236.         End If
  237.         
  238.         MEMORY(I).VISIBLE = -1
  239.        
  240.     Next
  241.     PLAYFIELD.HEIGHT = MEMORY(NUMFLAGS).TOP + MEMORY(NUMFLAGS).HEIGHT + 600
  242.     PLAYFIELD.WIDTH = MEMORY(NUMFLAGS).LEFT + MEMORY(NUMFLAGS).WIDTH + 600
  243.     PLAYFIELD.VISIBLE = -1
  244.     Call SETUP
  245. End Sub
  246. Sub HISCORE_Click ()
  247.     SCORES.Show 1
  248. End Sub
  249. Sub ICONRESET ()
  250.     If NUMFLAGS Then
  251.         NUMTRIES.CAPTION = "0"
  252.         MEMORY(1).VISIBLE = 0
  253.         MEMORY(1).PICTURE = LoadPicture(ICONDIR$ + "FACE03.ICO")
  254.         For I = 2 To NUMFLAGS
  255.             Unload MEMORY(I)
  256.         Next
  257.     End If
  258. End Sub
  259. Sub ICONS_Click (INDEX As Integer)
  260.     For I = 1 To 2
  261.         ICONS(I).CHECKED = 0
  262.     Next
  263.     ICONS(INDEX).CHECKED = -1
  264. End Sub
  265. Sub INFO_Click ()
  266.     ABOUT.Show 1
  267. End Sub
  268. Sub JOKE_Click ()
  269.     MsgBox "You must be joking.....", 48, "    2 X 2    "
  270. End Sub
  271. Static Sub MEMORY_Click (INDEX As Integer)
  272.     CR$ = Chr$(13) + Chr$(10)
  273.     If CARD$(INDEX) = "PICKED" Then
  274.         Beep
  275.         Exit Sub
  276.     End If
  277.     If BUTTON1 And INDEX = BUTTON1 Then
  278.         Beep: Beep
  279.         Exit Sub
  280.     End If
  281.     PICKED = PICKED + 1
  282.        
  283.     If PICKED = 1 Then
  284.         MEMORY(INDEX).PICTURE = LoadPicture(CARD$(INDEX))
  285.         MATCH1$ = CARD$(INDEX)
  286.         BUTTON1 = INDEX
  287.     Else
  288.         MEMORY(INDEX).PICTURE = LoadPicture(CARD$(INDEX))
  289.         MATCH2$ = CARD$(INDEX)
  290.         BUTTON2 = INDEX
  291.     End If
  292.     If PICKED = 2 Then
  293.         PICKED = 0
  294.         TRIES = TRIES + 1
  295.         NUMTRIES.CAPTION = Str$(TRIES)
  296.         If MATCH1$ <> MATCH2$ Then
  297.             
  298.             X = Timer
  299.             While X + 2 > Timer: Wend
  300.             MEMORY(BUTTON1).PICTURE = LoadPicture(UPBUTTON$)
  301.             MEMORY(BUTTON2).PICTURE = LoadPicture(UPBUTTON$)
  302.             
  303.             BUTTON1 = 0
  304.             BUTTON2 = 0
  305.         Else
  306.             CARD$(BUTTON1) = "PICKED"
  307.             CARD$(BUTTON2) = "PICKED"
  308.             MATCHES = MATCHES + 1
  309.             NUMMATCH.CAPTION = Str$(MATCHES) + " of" + Str$(NUMFLAGS / 2)
  310.             If MATCHES = NUMFLAGS / 2 Then
  311.                 
  312.                 Open "MMWINNER.FIL" For Random As #1 Len = Len(SCORE)
  313.                     Get #1, GAMEBOARD, SCORE
  314.                     If SCORE.POINTS = 0 Or TRIES <= SCORE.POINTS Then
  315.                         If TRIES = SCORE.POINTS Then
  316.                             TEXT$ = "You have tied "
  317.                         Else
  318.                             TEXT$ = "You have beaten "
  319.                         End If
  320.                         TEXT$ = TEXT$ + "the high score for this game..." + CR$ + "                   Congratulations !!!"
  321.                         MsgBox TEXT$, 64, "New High Score"
  322.                         SCORE.POINTS = TRIES
  323.                         HSENTRY.Show 1
  324.                         Put #1, GAMEBOARD, SCORE
  325.                     End If
  326.                 Close
  327.             End If
  328.         End If
  329.     End If
  330. End Sub
  331. Sub MhButton2_Click ()
  332.     End
  333. End Sub
  334. Sub QUIT_Click ()
  335.     End
  336. End Sub
  337. Sub SETUP ()
  338.     PICKED = 0
  339.     ICONDIR$ = CurDir$ + "\"
  340.     UPBUTTON$ = ICONDIR$ + "FACE03.ICO"
  341.     For I = 1 To 2
  342.         If ICONS(I).CHECKED = -1 Then OPT = I
  343.     Next
  344.     Select Case ICONS(OPT).INDEX
  345.         Case Is = 1
  346.             A$(1) = ICONDIR$ + "FLGASTRL.ICO"
  347.             A$(2) = ICONDIR$ + "FLGAUSTA.ICO"
  348.             A$(3) = ICONDIR$ + "FLGBRAZL.ICO"
  349.             A$(4) = ICONDIR$ + "FLGCAN.ICO"
  350.             A$(5) = ICONDIR$ + "FLGDEN.ICO"
  351.             A$(6) = ICONDIR$ + "FLGFIN.ICO"
  352.             A$(7) = ICONDIR$ + "FLGFRAN.ICO"
  353.             A$(8) = ICONDIR$ + "FLGGERM.ICO"
  354.             A$(9) = ICONDIR$ + "FLGIREL.ICO"
  355.             A$(10) = ICONDIR$ + "FLGITALY.ICO"
  356.             A$(11) = ICONDIR$ + "FLGJAPAN.ICO"
  357.             A$(12) = ICONDIR$ + "FLGMEX.ICO"
  358.             A$(13) = ICONDIR$ + "FLGNETH.ICO"
  359.             A$(14) = ICONDIR$ + "FLGNORW.ICO"
  360.             A$(15) = ICONDIR$ + "FLGNZ.ICO"
  361.             A$(16) = ICONDIR$ + "FLGPORT.ICO"
  362.             A$(17) = ICONDIR$ + "FLGSPAIN.ICO"
  363.             A$(18) = ICONDIR$ + "FLGSWED.ICO"
  364.             A$(19) = ICONDIR$ + "FLGSWITZ.ICO"
  365.             A$(20) = ICONDIR$ + "FLGTURK.ICO"
  366.             A$(21) = ICONDIR$ + "FLGUK.ICO"
  367.             A$(22) = ICONDIR$ + "FLGUSA01.ICO"
  368.             A$(23) = ICONDIR$ + "FLGUSA02.ICO"
  369.             A$(24) = ICONDIR$ + "FLGUSSR.ICO"
  370.         Case Is = 2
  371.             A$(1) = ICONDIR$ + "1.ICO"
  372.             A$(2) = ICONDIR$ + "2.ICO"
  373.             A$(3) = ICONDIR$ + "3.ICO"
  374.             A$(4) = ICONDIR$ + "4.ICO"
  375.             A$(5) = ICONDIR$ + "5.ICO"
  376.             A$(6) = ICONDIR$ + "6.ICO"
  377.             A$(7) = ICONDIR$ + "7.ICO"
  378.             A$(8) = ICONDIR$ + "8.ICO"
  379.             A$(9) = ICONDIR$ + "9.ICO"
  380.             A$(10) = ICONDIR$ + "10.ICO"
  381.             A$(11) = ICONDIR$ + "11.ICO"
  382.             A$(12) = ICONDIR$ + "12.ICO"
  383.             A$(13) = ICONDIR$ + "13.ICO"
  384.             A$(14) = ICONDIR$ + "14.ICO"
  385.             A$(15) = ICONDIR$ + "15.ICO"
  386.             A$(16) = ICONDIR$ + "16.ICO"
  387.             A$(17) = ICONDIR$ + "17.ICO"
  388.             A$(18) = ICONDIR$ + "18.ICO"
  389.             A$(19) = ICONDIR$ + "19.ICO"
  390.             A$(20) = ICONDIR$ + "20.ICO"
  391.             A$(21) = ICONDIR$ + "21.ICO"
  392.             A$(22) = ICONDIR$ + "22.ICO"
  393.             A$(23) = ICONDIR$ + "23.ICO"
  394.             A$(24) = ICONDIR$ + "24.ICO"
  395.     End Select
  396.     Randomize Timer
  397.     MATCHES = 0
  398.     TRIES = 0
  399.     For I = 1 To NUMFLAGS
  400.         CARD$(I) = ""
  401.     Next
  402.     For I = 1 To NUMFLAGS
  403.         
  404.         OK = 0
  405.         Do
  406.             NUM = Int(NUMFLAGS * Rnd(1) + 1)
  407.             If CARD$(NUM) = "" Then
  408.                 X = Int(I * .5 + .5)
  409.                 CARD$(NUM) = A$(X)
  410.                 OK = 1
  411.             End If
  412.          
  413.         Loop Until OK
  414.     Next
  415.     NUMMATCH.CAPTION = "0 of" + Str$(NUMFLAGS / 2)
  416. End Sub
  417.